/**
 * @param {number} n
 * @return {number}
 */
var fib = function(n) {
    const map=new Map()
    const dp=function(n){
        if (n === 0)
            return 0
        if (n === 1)
            return 1
        if (!map.get(n - 1))
            map.set(n - 1, dp(n - 1))
        if (!map.get(n - 2))
            map.set(n - 2, dp(n - 2))
        return (map.get(n - 1) + map.get(n - 2)) % (10 ** 9 + 7)
    }
    return dp(n)
};

console.log(fib(81));